package com.turing.post.cardmanagement.util;

import java.math.BigInteger;
import java.util.List;

import javax.ejb.Local;
import javax.ejb.Remote;

import com.turing.post.util.PCPSApplicationException;
import com.turing.post.util.PCPSWebInput;

/**
 * 临时领卡\缴回单 Dao接口
 * 
 * @author kangzhe
 * 
 */
@Remote
@Local
public interface SalesGetCardOrderDao {

	/**
	 * 新增临时领卡\缴回单
	 * 
	 * @param sgco
	 */
	public void add(SalesGetCardOrder sgco) throws PCPSApplicationException;

	/**
	 * 修改临时领卡\缴回单
	 * 
	 * @param sgco
	 */
	public void update(SalesGetCardOrder sgco) throws PCPSApplicationException;

	/**
	 * 根据主键获取临时领卡\缴回单
	 * 
	 * @param salesGetCardOrderId
	 */
	public SalesGetCardOrder getInfoByOrderId(BigInteger salesGetCardOrderId);

	/**
	 * 根据条件获取临时领卡\缴回单列表
	 * 
	 * @param input
	 * @param salesGetCardOrderNo
	 * @param saleBranchNo
	 * @param tranDate
	 * @param orderType
	 * @param page
	 * @return
	 */
	public List<SalesGetCardOrder> getSalesGetCardOrderByConditions(
			PCPSWebInput input, String salesGetCardOrderNo,
			String saleBranchNo, String startTranDate, String endTranDate,
			String orderType, Integer page);

	/**
	 * 根据条件获取临时领卡\缴回单列表总数
	 * 
	 * @param input
	 * @param salesGetCardOrderNo
	 * @param saleBranchNo
	 * @param tranDate
	 * @param orderType
	 * @return
	 */
	public BigInteger getSalesGetCardOrderTotalByConditions(PCPSWebInput input,
			String salesGetCardOrderNo, String saleBranchNo,
			String startTranDate, String endTranDate, String orderType);

	/**
	 * 根据单号查询
	 * 
	 * @param salesGetCardOrderNo
	 * @return
	 */
	public SalesGetCardOrder getSalesGetCardOrderBySalesGetCardOrderNo(
			String salesGetCardOrderNo);
}
